#include<stdio.h>
#include<stdlib.h>
//此文件使用qsort对结构体进行排序
struct Stu
{
   char name[20];
   int age;
};
void test2()
{
struct Stu arr[]={{"A",20},{"B",18},{"C",19}};
int sz=sizeof(arr)/sizeof(arr[0]);
qsort(arr,sz,sizeof(arr[0]),cmp_stu_by_age);
}
/*
如何比较结构体数据？不能用大于小于等于符号
1.可以按名字比较
2.可以按年龄比较
*/
int cmp_stu_by_age(const void*p1,const void*p2)
{
return ((struct Stu*)p1)->age-((struct Stu*)p2)->age;
//((struct Stu*)p1)->age也可以表示为(*(struct Stu*)).age
}
//如果按名字比较呢？不能直接比较，使用库函数strcmp即string compare
//比较原理是比较对应字符的ASCII码值 例如abcd<abl

int cmp_Stu_bu_name(const void*p1,const void*p2)
{
    return strcmp(((struct Stu*)p1)->name-((struct Stu*)p2)->name);
}